var _n39;
var cc__extends = __extends;
var cc__decorate = __decorate;
var cc__importDefault = __importDefault;
Object.defineProperty(exports, "__esModule", {
  value: true
});
var $1$EventManager = require("EventManager");
var s = cc__importDefault($1$EventManager);
var $1$Loader = require("Loader");
var c = cc__importDefault($1$Loader);
var $GameEventType = require("GameEventType");
var $zqcc_OverallSystem = require("zqcc_OverallSystem");
var $1$SignInItem = require("SignInItem");
var p = cc__importDefault($1$SignInItem);
var $1$zqcc_pageBase = require("zqcc_pageBase");
var d = cc__importDefault($1$zqcc_pageBase);
var cc__decorator = cc._decorator;
var ccp_ccclass = cc__decorator.ccclass;
var ccp_property = cc__decorator.property;
var def_SignIn = function (t) {
  function _ctor() {
    // 初始化并返回当前实例或从父类调用的实例
    const instance = null !== t && t.apply(this, arguments) || this;

    // 设置页面名称和初始化属性
    instance.pageName = "签到页面"; // 页面名称
    instance.item = null;             // 当前物品
    instance.scrContent = null;       // 滚动内容
    instance.qiandaoBtn = null;      // 签到按钮
    instance.fanbeiqiandaoBtn = null; // 返倍签到按钮
    instance.listData = null;        // 列表数据
    instance.nowData = null;         // 当前位置数据
    instance.fanbei = false;         // 是否返倍

    return instance; // 返回当前实例
  }
  cc__extends(_ctor, t);
  _ctor.prototype.onLoad = function () { };
  _ctor.prototype.start = function () {
    this.initList();
    this._init();
    this.initBtn();
  };
  _ctor.prototype.initList = function () {
    const context = this; // 保存当前上下文
    let rewardMessage = "首次签到奖励"; // 初始奖励信息

    // 检查用户是否有循环签到奖励
    if ($zqcc_OverallSystem.sers().userSrv.getSignInList().one) {
      rewardMessage = "循环签到奖励"; // 更新奖励信息
    }

    console.log(rewardMessage); // 输出奖励信息

    // 加载首次签到或循环签到的奖励数据
    c.default.loadBundleRes("home", "json/" + rewardMessage, function (response) {
      console.log(response.json); // 输出加载的 JSON 数据
      const rewardsData = response.json; // 获取奖励数据

      // 加载物品的 JSON 数据
      c.default.loadBundleRes("home", "json/物品", function (itemResponse) {
        const itemsData = itemResponse.json; // 获取物品数据

        // 初始化游戏
        if (context && context.node) {
          context.initGame(rewardsData, itemsData);
        }
      });
    });
  };
  _ctor.prototype.initBtn = function () {
    const currentTime = new Date().getTime(); // 获取当前时间戳
    const signInList = $zqcc_OverallSystem.sers().userSrv.getSignInList(); // 获取签到列表

    if (signInList.lastTime) {
      const isSameDay = this.isSameDay(currentTime, signInList.lastTime); // 检查最后签到时间是否为今天

      // 设置签到按钮的可交互状态
      this.qiandaoBtn.interactable = !isSameDay;
      this.fanbeiqiandaoBtn.interactable = !isSameDay;
      console.log("是否可签到: " + !isSameDay); // 输出是否可签到信息

      // 如果今天未签到且列表长度达到7，重置签到列表
      if (!isSameDay && signInList.list.length >= 7) {
        signInList.list = []; // 清空签到列表
        signInList.one = true; // 设置为已获得奖励
        $zqcc_OverallSystem.sers().userSrv.setSignInList(signInList); // 更新签到列表
        this.initList(); // 初始化列表
      }
    }
  };
  _ctor.prototype.initGame = function (t, e) {
    const signInList = $zqcc_OverallSystem.sers().userSrv.getSignInList(); // 获取签到列表
    this.fanbei = false; // 初始化返倍状态为 false

    // 遍历对象 t
    for (const key in t) {
      if (Object.prototype.hasOwnProperty.call(t, key)) {
        const itemData = t[key]; // 当前项数据
        const childNode = this.scrContent.children[+key - 1]; // 获取对应的子节点

        if (childNode) {
          itemData.key = key; // 设置数据的键

          // 构建用于设置数据的对象
          const dataPayload = {
            data: itemData,
            wupinData: e // 额外的物品数据
          };

          // 设置子节点组件的数据
          childNode.getComponent(p.default).setData(dataPayload);

          // 检查当前项是否在签到列表中且没有当前数据
          if (signInList.list.indexOf(+key) < 0 && !this.nowData) {
            this.nowData = dataPayload; // 设置当前数据

            // 根据奖励物品ID更新按钮状态
            if (this.nowData.data["奖励物品ID"] === "1001") {
              this.fanbeiqiandaoBtn.node.active = true; // 显示返倍按钮
            } else {
              this.fanbeiqiandaoBtn.node.active = false; // 隐藏返倍按钮
            }
          }
        }
      }
    }
  };
  _ctor.prototype._init = function () {
    this.open();
  };
  _ctor.prototype.isSameDay = function (t, e) {
    const date1 = new Date(t); // 将 t 转换为日期对象
    const date2 = new Date(e); // 将 e 转换为日期对象

    // 比较两个日期是否在同一天
    return (
      date1.getFullYear() === date2.getFullYear() &&
      date1.getMonth() === date2.getMonth() &&
      date1.getDate() === date2.getDate()
    );
  };
  _ctor.prototype.OnBtnConfirm = function () { };
  _ctor.prototype.fabeiqian = function () {
    const context = this; // 保存当前上下文

    // 加载并显示视频广告
    $zqcc_OverallSystem.sers().platformSrv.platformApi.loadAndShowVideoAd(
      function () {
        context.fanbei = true; // 设置翻倍状态为 true
        context.qiandao(); // 执行签到操作
      },
      function () {
        // 广告关闭后的回调（目前不做任何处理）
      },
      null, // 可选参数
      {
        scene: "签到", // 事件场景
        event: "翻倍签到" // 事件名称
      },
      "common_video" // 视频类型
    );
  };
  _ctor.prototype.qiandao = function () {
    // 播放按钮音效
    $zqcc_OverallSystem.mgrs().soundMgr.playBtnSound();

    // 获取用户签到列表
    const signInList = $zqcc_OverallSystem.sers().userSrv.getSignInList();
    signInList.lastTime = new Date().getTime(); // 更新最后签到时间
    signInList.list.push(+this.nowData.data.key); // 添加当前签到数据键

    // 对于非微信和抖音环境，设置 lastTime 为1
    if (!window.tt && !window.wx) {
      signInList.lastTime = 1;
    }

    // 保存更新后的签到列表
    $zqcc_OverallSystem.sers().userSrv.setSignInList(signInList);

    // 获取当前数据和物品数据
    const currentData = this.nowData.data;
    const itemData = this.nowData.wupinData;

    // 检查奖励物品ID
    if (currentData["奖励物品ID"] === "1001") {
      let rewardQuantity = +currentData["奖励物品数量"]; // 奖励数量
      if (this.fanbei) {
        rewardQuantity *= 5; // 翻倍奖励
      }
      $zqcc_OverallSystem.sers().userSrv.addCoin(rewardQuantity); // 添加奖赏
      $zqcc_OverallSystem.sers().uiSrv.showMessage("获得" + itemData[currentData["奖励物品ID"]]["物品名称"] + " X " + rewardQuantity); // 显示奖励消息
    } else {
      // 处理其他类型的奖励
      const zhutiData = $zqcc_OverallSystem.sers().userSrv.getZhutiData();
      zhutiData.push(itemData[currentData["奖励物品ID"]]["储存"]);
      zhutiData.push("3_2");
      $zqcc_OverallSystem.sers().userSrv.setZhutiData(zhutiData); // 更新主题数据
      $zqcc_OverallSystem.sers().uiSrv.showMessage("获得" + itemData[currentData["奖励物品ID"]]["物品名称"] + " X " + currentData["奖励物品数量"]); // 显示奖励消息
    }

    // 触发签到列表事件
    s.default.emit($GameEventType.EventType.UIEvent.SignInList);

    // 初始化按钮
    this.initBtn();

    // 检查是否为非微信和抖音环境
    if (!(window.tt || window.wx)) {
      cc.log("init");
      this.nowData = null; // 清除当前数据
      this.initList(); // 初始化列表
      this.initBtn(); // 再次初始化按钮
    }
  };
  _ctor.prototype.OnBtnClose = function () {
    $zqcc_OverallSystem.mgrs().soundMgr.playBtnSound();
    this.onlyClose();
  };
  cc__decorate([ccp_property(cc.Node)], _ctor.prototype, "item", undefined);
  cc__decorate([ccp_property(cc.Node)], _ctor.prototype, "scrContent", undefined);
  cc__decorate([ccp_property(cc.Button)], _ctor.prototype, "qiandaoBtn", undefined);
  cc__decorate([ccp_property(cc.Button)], _ctor.prototype, "fanbeiqiandaoBtn", undefined);
  return cc__decorate([ccp_ccclass], _ctor);
}(d.default);
exports.default = def_SignIn;